# -!- coding: utf-8 -!-
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
#作者：cacho_37967865
#博客：https://blog.csdn.net/sinat_37967865
#文件：logging_model.py
#日期：2018-11-12
#备注：logging模块是Python内置的标准模块，主要用于输出运行日志，可以设置输出日志的等级、日志保存路径、日志文件回滚等。  
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


import logging
from datetime import datetime
import os


logger = logging.getLogger()    # 初始化一个logger

# 默认生成的root logger的level是logging.WARNING,低于该级别的就不输出了
# 级别排序:CRITICAL>ERROR>WARNING>INFO>DEBUG
logger.setLevel(logging.DEBUG)        # 总级别：所有信息都输出

# 将日志存储到指定目录的文件
file_name = datetime.now().strftime('%Y%m%d%H%M')      # 用时间当成文件名称，格式：201811111833（年月日时分）
log_path = os.path.dirname(os.path.abspath('.')) + '/logs/'    # 指定存储的绝对路径
log_name = log_path + file_name + '.log'                       # 生成文件信息
save_file = logging.FileHandler(log_name)

# 在控制台输出日志
output = logging.StreamHandler()
output.setLevel(logging.INFO)                      # 设置输出到控制台的级别

# 日志输出格式设置
formatter = logging.Formatter('%(asctime)s - %(name)s - %(funcName) - %(levelname)s --> %(message)s')
save_file.setFormatter(formatter)
output.setFormatter(formatter)

 # 日志处理
logger.addHandler(save_file)
logger.addHandler(output)

logger.debug("this is a logger debug message")
logger.info("this is a logger info message")
logger.warning("this is a logger warning message")
logger.error("this is a logger error message")
logger.critical("this is a logger critical message")